Highly Concurrent Shared Storage

نویسندگان

  • Khalil Amiri
  • Garth A. Gibson
  • Richard A. Golding
چکیده

Switched system-area networks enable thousands of storage devices to be shared and directly accessed by end hosts, promising databases and filesystems highly scalable, reliable storage. In such systems, hosts perform access tasks (read and write) and management tasks (storage migration and reconstruction of data on failed devices.) Each task translates into multiple phases of low-level device I/Os, so that concurrent host tasks accessing shared devices can corrupt redundancy codes and cause hosts to read inconsistent data. Concurrency control protocols that scale to large system sizes are required in order to coordinate on-line storage management and access tasks. In this paper, we identify the tasks that storage controllers must perform, and propose an approach which allows these tasks to be composed from basic operations—called base storage transactions (BSTs)—such that correctness requires only the serializability of the BSTs and not of the parent tasks. We present highly scalable distributed protocols which exploit storage technology trends and BST properties to achieve serializability while coming within a few percent of ideal

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Storage-Efficient Shared Memory Emulation

Improvements in communication fabrics have enabled access to ever larger pools of data with decreasing access latencies, bringing large-scale memory fabrics closer to feasibility. However, with an increase in scale come new challenges. Since more systems are aggregated, maintaining a certain level of reliability requires increasing the storage redundancy, typically via data replication. The cor...

متن کامل

Toward Common Patterns for Distributed, Concurrent, Fault-Tolerant Code

There are no widely accepted design patterns for writing distributed, concurrent, fault-tolerant code. Each programmer develops her own techniques for writing this type of complex software. The use of a common pattern for fault-tolerant programming has the potential to produce correct code more quickly and increase shared understanding between developers. We describe rules, tasks, and pools, pa...

متن کامل

Two-Phase Update for Scalable Concurrent Data Structures

Parallel shared-memory software must control concurrent access to shared resources. This is typically accomplished via locking designs that result in low concurrency or that are highly complex. This paper presents two-phase update, which is an alternative method of updating concurrent data structures, and demonstrates that it is both simple and highly scalable in restricted but commonly occurri...

متن کامل

A Model of Transactional Programming

There has been a lot of recent research on transaction-based concurrent programming, aimed at offering an easier concurrent programming paradigm that enables programmers to better exploit the parallelism of modern multi-processor machines, such as multi-core microprocessors. We introduce Transactional State Machines (TSMs) as an abstract finite-data model of transactional shared-memory concurre...

متن کامل

Concurrent Operations of O2-Tree on Shared Memory Multicore Architectures

Modern computer architectures provide high performance computing capability by having multiple CPU cores. Such systems are also typically associated with very large main-memory capacities, of the order of tens to hundreds of gigabytes, thereby allowing such architectures to be used for fast processing of in-memory databases applications. However, most of the concurrency control mechanism associ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2000